package br.com.exemplo.vendas.negocio.ejb ;

import java.rmi.RemoteException;
import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import br.com.exemplo.vendas.negocio.dao.DaoFactory;
import br.com.exemplo.vendas.negocio.ejb.interfaces.ClienteLocal;
import br.com.exemplo.vendas.negocio.ejb.interfaces.ClienteRemote;
import br.com.exemplo.vendas.negocio.entity.Cliente;
import br.com.exemplo.vendas.negocio.model.vo.ClienteVO;
import br.com.exemplo.vendas.util.dto.ServiceDTO;
import br.com.exemplo.vendas.util.exception.LayerException;

@Stateless
public class ClienteBean implements ClienteRemote, ClienteLocal
{
	@PersistenceContext( unitName = "Vendas" )
	EntityManager em ;

	@Override
	public ServiceDTO listarClientes(ServiceDTO requestDTO)
			throws LayerException, RemoteException {
		
		ServiceDTO responseDTO = new ServiceDTO( ) ;
		Cliente cliente= null ;
		List<Cliente> lista = DaoFactory.getClienteDAO( em ).listarClientes();
		ClienteVO[] listaClientes = null;
		
		if (( lista != null ) && ( !lista.isEmpty() ))
		{
			listaClientes = new ClienteVO[lista.size()];
			for (int i = 0; i < lista.size( ); i++)
			{
				cliente = (Cliente) lista.get( i ) ;
				ClienteVO clienteVO = new ClienteVO(cliente.getCodigo(), cliente.getNome(), cliente.getEndereco(), 
						cliente.getTelefone(), cliente.getSituacao(), cliente.getId());
				listaClientes[ i ] = clienteVO ;
			}
		}
		responseDTO.set( "listaCliente", listaClientes ) ;
		responseDTO.set( "resposta", new Boolean( true ) ) ;
		return responseDTO ;
	}

	
}
